熟悉 TabPy 的運作與使用方法之後,下一步便是開發屬於自己的 Model。若直接使用 TabPy 與 Tableau Desktop 來開發,很快會發現這樣的開發流程將會是一個問題,因為資料是直接從 Tableau Desktop 來的,導致我們無法像平常開發 Python 一樣,修改程式後馬上運行查看結果,造成諸多不便。因此這裡要分享個人平時開發 TabPy Model 的流程,提供給讀者參考。
首先,需要解決資料源的問題,因為我們開發的時候不太可能一邊寫 Python 一邊操作 Tableau Desktop 來查看運算結果,除非程式邏輯很簡單,否則將會耗費大量時間在來回操作上。這裡提供一個替代方案,先從 Tableau Desktop 先將資料匯出成 csv 檔,再使用 Python 讀檔案做為資料源。
在 Data
Menu 中選擇資料集 (此例為 Sample - Superstore
) 並點選 View Data...
,先切換至要匯出的資料表頁籤 (此例為 Orders
),再點擊 Export All
按鈕匯出 csv 格式的資料集檔案
在 Python 中我們可以使用 pandas
套件來讀取 csv 文字檔,為了迎合 TabPy 的資料型態,需將會使用到的資料欄位轉換為 List 型態。再建立我們要佈署的函式,並將資料輸入測試運算結果
import pandas as pd
# read csv file
df = pd.read_csv(r'C:\Users\wrxue\Downloads\Sample - Superstore_Orders.csv')
# convert Sales and State Series to list
sales = df['Sales'].tolist()
state = df['State'].tolist()
# create your own function
def testStr(data1, data2):
return [f'{x[1]} 的銷售額為 {int(x[0])}' for x in zip(data1, data2)]
# test testStr function
print('\n'.join(testStr(sales, state)))
{% note info %}
再次提醒,所有輸入函式的參數都應為 List 型態,最符合 TabPy 的使用情境
{% endnote %}
執行並觀察輸出,若為預期中的結果,即可參考 [Day25] Tableau 輕鬆學 - TabPy 使用方法 2 進行佈署函式流程
District of Columbia 的銷售額為 40
Massachusetts 的銷售額為 40
Rhode Island 的銷售額為 592
...
...
...
California 的銷售額為 3023
Arizona 的銷售額為 599
Colorado 的銷售額為 2549
這樣的開發流程是依照個人的開發經驗分享給各位讀者的,但不代表說一定要這樣做,若有更簡便的方法歡迎至下方討論區留言分享,讓我們能一起學習與進步。